All software developers, in whatever language and platform, and whatever methodology, realize that there is some software that they don't want to write, and that already exists. Developers that write their own software conventionally will use published artifacts as building blocks in writing code within a larger project, so as to avoid re-writing software that already exists. For any given task, there may be multiple artifacts that can possibly do what the programmer/developer needs to do.
However, determining and maintaining an appropriate artifact for a particular project can be difficult. A software artifact that is appropriate for one project may not be particularly appropriate for the same use in another project. Further, once an artifact is selected and in use in a project, changes to the artifact may effect the artifact's ongoing suitability for the project in which it is being used.
The initial determination of an appropriate artifact is discussed in the present disclosure for the purpose of establishing background material related to the claimed embodiments. However, the focus of this disclosure relates to ensuring that an in-use artifact continues to be appropriate in a particular software development environment for a particular user. It should be noted that an initial determination of an appropriate artifact is discussed in greater detail in U.S. patent application Ser. No. 13/089,751 (now U.S. Pat. No. 8,438,532) and in U.S. patent application Ser. No. 13/151,816 (now U.S. Pat. No. 8,612,936).